//
// Created by pzw on 24-1-4.
//

#include <utility>

#include "./CxxHandler.h"

CxxHandler::CxxHandler() {
    mLooper = CxxLooper::getThreadLocalLooper();
}

CxxHandler::CxxHandler(CxxLooper *looper) {
    mLooper = looper;
}

void CxxHandler::setLooper(CxxLooper *looper) {
    mLooper = looper;
}

void CxxHandler::sendMessage(CxxMessage *msg) {
    msg->handler = this;
    mLooper->enQueue(msg);
}

void CxxHandler::sendEmptyMessage(int what) {
    CxxMessage *msg = CxxMessage::obtain(what, this);
    mLooper->enQueue(msg);
}

void CxxHandler::post(MessageCallback callback) {
    CxxMessage *msg = CxxMessage::obtain();
    msg->callBack = std::move(callback);
    msg->handler = this;
    mLooper->enQueue(msg);
}

void CxxHandler::handleMessage(CxxMessage *msg) {

}

